<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XLib Surfaces: Cairo: A Vector Graphics Library</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="cairo-surfaces.html" title="Surfaces">
<link rel="prev" href="cairo-XCB-Surfaces.html" title="XCB Surfaces">
<link rel="next" href="cairo-XLib-XRender-Backend.html" title="XLib-XRender Backend">
<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#cairo-XLib-Surfaces.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="cairo-XCB-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="cairo-XLib-XRender-Backend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="cairo-XLib-Surfaces"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="cairo-XLib-Surfaces.top_of_page"></a>XLib Surfaces</span></h2>
<p>XLib Surfaces — X Window System rendering using XLib</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()">cairo_xlib_surface_create</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap" title="cairo_xlib_surface_create_for_bitmap ()">cairo_xlib_surface_create_for_bitmap</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" title="cairo_xlib_surface_set_size ()">cairo_xlib_surface_set_size</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">Display</span> *
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display" title="cairo_xlib_surface_get_display ()">cairo_xlib_surface_get_display</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">Screen</span> *
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen" title="cairo_xlib_surface_get_screen ()">cairo_xlib_surface_get_screen</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable" title="cairo_xlib_surface_set_drawable ()">cairo_xlib_surface_set_drawable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">Drawable</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable" title="cairo_xlib_surface_get_drawable ()">cairo_xlib_surface_get_drawable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">Visual</span> *
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual" title="cairo_xlib_surface_get_visual ()">cairo_xlib_surface_get_visual</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width" title="cairo_xlib_surface_get_width ()">cairo_xlib_surface_get_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height" title="cairo_xlib_surface_get_height ()">cairo_xlib_surface_get_height</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth" title="cairo_xlib_surface_get_depth ()">cairo_xlib_surface_get_depth</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version" title="cairo_xlib_device_debug_cap_xrender_version ()">cairo_xlib_device_debug_cap_xrender_version</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision" title="cairo_xlib_device_debug_get_precision ()">cairo_xlib_device_debug_get_precision</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision" title="cairo_xlib_device_debug_set_precision ()">cairo_xlib_device_debug_set_precision</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody><tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS" title="CAIRO_HAS_XLIB_SURFACE">CAIRO_HAS_XLIB_SURFACE</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.description"></a><h2>Description</h2>
<p>The XLib surface is used to render cairo graphics to X Window System
windows and pixmaps using the XLib library.</p>
<p>Note that the XLib surface automatically takes advantage of X render extension
if it is available.</p>
</div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="cairo-xlib-surface-create"></a><h3>cairo_xlib_surface_create ()</h3>
<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
cairo_xlib_surface_create (<em class="parameter"><code><span class="type">Display</span> *dpy</code></em>,
                           <em class="parameter"><code><span class="type">Drawable</span> drawable</code></em>,
                           <em class="parameter"><code><span class="type">Visual</span> *visual</code></em>,
                           <em class="parameter"><code><span class="type">int</span> width</code></em>,
                           <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
<p>Creates an Xlib surface that draws to the given drawable.
The way that colors are represented in the drawable is specified
by the provided visual.</p>
<p>Note: If <em class="parameter"><code>drawable</code></em>
 is a Window, then the function
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" title="cairo_xlib_surface_set_size ()"><code class="function">cairo_xlib_surface_set_size()</code></a> must be called whenever the size of the
window changes.</p>
<p>When <em class="parameter"><code>drawable</code></em>
 is a Window containing child windows then drawing to
the created surface will be clipped by those child windows.  When
the created surface is used as a source, the contents of the
children will be included.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-create.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dpy</p></td>
<td class="parameter_description"><p>an X Display</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>drawable</p></td>
<td class="parameter_description"><p>an X Drawable, (a Pixmap or a Window)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>visual</p></td>
<td class="parameter_description"><p>the visual to use for drawing to <em class="parameter"><code>drawable</code></em>
. The depth
of the visual must match the depth of the drawable.
Currently, only TrueColor visuals are fully supported.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the current width of <em class="parameter"><code>drawable</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>the current height of <em class="parameter"><code>drawable</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-create.returns"></a><h4>Returns</h4>
<p> the newly created surface</p>
</div>
<p class="since">Since: 1.0</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-create-for-bitmap"></a><h3>cairo_xlib_surface_create_for_bitmap ()</h3>
<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
cairo_xlib_surface_create_for_bitmap (<em class="parameter"><code><span class="type">Display</span> *dpy</code></em>,
                                      <em class="parameter"><code><span class="type">Pixmap</span> bitmap</code></em>,
                                      <em class="parameter"><code><span class="type">Screen</span> *screen</code></em>,
                                      <em class="parameter"><code><span class="type">int</span> width</code></em>,
                                      <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
<p>Creates an Xlib surface that draws to the given bitmap.
This will be drawn to as a <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS"><code class="literal">CAIRO_FORMAT_A1</code></a> object.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-create-for-bitmap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dpy</p></td>
<td class="parameter_description"><p>an X Display</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>bitmap</p></td>
<td class="parameter_description"><p>an X Drawable, (a depth-1 Pixmap)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>screen</p></td>
<td class="parameter_description"><p>the X Screen associated with <em class="parameter"><code>bitmap</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the current width of <em class="parameter"><code>bitmap</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>the current height of <em class="parameter"><code>bitmap</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-create-for-bitmap.returns"></a><h4>Returns</h4>
<p> the newly created surface</p>
</div>
<p class="since">Since: 1.0</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-set-size"></a><h3>cairo_xlib_surface_set_size ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
cairo_xlib_surface_set_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
                             <em class="parameter"><code><span class="type">int</span> width</code></em>,
                             <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
<p>Informs cairo of the new size of the X Drawable underlying the
surface. For a surface created for a Window (rather than a Pixmap),
this function must be called each time the size of the window
changes. (For a subwindow, you are normally resizing the window
yourself, but for a toplevel window, it is necessary to listen for
ConfigureNotify events.)</p>
<p>A Pixmap can never change size, so it is never necessary to call
this function on a surface created for a Pixmap.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-set-size.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XLib backend</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the new width of the surface</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>the new height of the surface</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.0</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-display"></a><h3>cairo_xlib_surface_get_display ()</h3>
<pre class="programlisting"><span class="returnvalue">Display</span> *
cairo_xlib_surface_get_display (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the X Display for the underlying X Drawable.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-display.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-display.returns"></a><h4>Returns</h4>
<p> the display.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-screen"></a><h3>cairo_xlib_surface_get_screen ()</h3>
<pre class="programlisting"><span class="returnvalue">Screen</span> *
cairo_xlib_surface_get_screen (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the X Screen for the underlying X Drawable.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-screen.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-screen.returns"></a><h4>Returns</h4>
<p> the screen.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-set-drawable"></a><h3>cairo_xlib_surface_set_drawable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
cairo_xlib_surface_set_drawable (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
                                 <em class="parameter"><code><span class="type">Drawable</span> drawable</code></em>,
                                 <em class="parameter"><code><span class="type">int</span> width</code></em>,
                                 <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
<p>Informs cairo of a new X Drawable underlying the
surface. The drawable must match the display, screen
and format of the existing drawable or the application
will get X protocol errors and will probably terminate.
No checks are done by this function to ensure this
compatibility.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-set-drawable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XLib backend</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>drawable</p></td>
<td class="parameter_description"><p>the new drawable for the surface</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the width of the new drawable</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>the height of the new drawable</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.0</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-drawable"></a><h3>cairo_xlib_surface_get_drawable ()</h3>
<pre class="programlisting"><span class="returnvalue">Drawable</span>
cairo_xlib_surface_get_drawable (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the underlying X Drawable used for the surface.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-drawable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-drawable.returns"></a><h4>Returns</h4>
<p> the drawable.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-visual"></a><h3>cairo_xlib_surface_get_visual ()</h3>
<pre class="programlisting"><span class="returnvalue">Visual</span> *
cairo_xlib_surface_get_visual (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Gets the X Visual associated with <em class="parameter"><code>surface</code></em>
, suitable for use with the
underlying X Drawable.  If <em class="parameter"><code>surface</code></em>
 was created by
<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()"><code class="function">cairo_xlib_surface_create()</code></a>, the return value is the Visual passed to that
constructor.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-visual.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-visual.returns"></a><h4>Returns</h4>
<p> the Visual or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no appropriate Visual for
<em class="parameter"><code>surface</code></em>
.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-width"></a><h3>cairo_xlib_surface_get_width ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
cairo_xlib_surface_get_width (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the width of the X Drawable underlying the surface in pixels.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-width.returns"></a><h4>Returns</h4>
<p> the width of the surface in pixels.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-height"></a><h3>cairo_xlib_surface_get_height ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
cairo_xlib_surface_get_height (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the height of the X Drawable underlying the surface in pixels.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-height.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-height.returns"></a><h4>Returns</h4>
<p> the height of the surface in pixels.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-surface-get-depth"></a><h3>cairo_xlib_surface_get_depth ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
cairo_xlib_surface_get_depth (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
<p>Get the number of bits used to represent each pixel value.</p>
<div class="refsect3">
<a name="cairo-xlib-surface-get-depth.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>surface</p></td>
<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-surface-get-depth.returns"></a><h4>Returns</h4>
<p> the depth of the surface in bits.</p>
</div>
<p class="since">Since: 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-device-debug-cap-xrender-version"></a><h3>cairo_xlib_device_debug_cap_xrender_version ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
cairo_xlib_device_debug_cap_xrender_version
                               (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
                                <em class="parameter"><code><span class="type">int</span> major_version</code></em>,
                                <em class="parameter"><code><span class="type">int</span> minor_version</code></em>);</pre>
<p>Restricts all future Xlib surfaces for this devices to the specified version
of the RENDER extension. This function exists solely for debugging purpose.
It lets you find out how cairo would behave with an older version of
the RENDER extension.</p>
<p>Use the special values -1 and -1 for disabling the RENDER extension.</p>
<div class="refsect3">
<a name="cairo-xlib-device-debug-cap-xrender-version.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>major_version</p></td>
<td class="parameter_description"><p>major version to restrict to</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minor_version</p></td>
<td class="parameter_description"><p>minor version to restrict to</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.12</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-device-debug-get-precision"></a><h3>cairo_xlib_device_debug_get_precision ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
cairo_xlib_device_debug_get_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
<p>Get the Xrender precision mode.</p>
<div class="refsect3">
<a name="cairo-xlib-device-debug-get-precision.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="cairo-xlib-device-debug-get-precision.returns"></a><h4>Returns</h4>
<p> the render precision mode</p>
</div>
<p class="since">Since: 1.12</p>
</div>
<hr>
<div class="refsect2">
<a name="cairo-xlib-device-debug-set-precision"></a><h3>cairo_xlib_device_debug_set_precision ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
cairo_xlib_device_debug_set_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
                                       <em class="parameter"><code><span class="type">int</span> precision</code></em>);</pre>
<p>Render supports two modes of precision when rendering trapezoids. Set
the precision to the desired mode.</p>
<div class="refsect3">
<a name="cairo-xlib-device-debug-set-precision.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>precision</p></td>
<td class="parameter_description"><p>the precision to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.12</p>
</div>
</div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="CAIRO-HAS-XLIB-SURFACE:CAPS"></a><h3>CAIRO_HAS_XLIB_SURFACE</h3>
<pre class="programlisting">#define CAIRO_HAS_XLIB_SURFACE 1
</pre>
<p>Defined if the Xlib surface backend is available.
This macro can be used to conditionally compile backend-specific code.</p>
<p class="since">Since: 1.0</p>
</div>
</div>
<div class="refsect1">
<a name="cairo-XLib-Surfaces.see-also"></a><h2>See Also</h2>
<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>